#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ = ""
__author__ = "Administrator"
__mtime__ = "2016/6/17"
"""
#对参数数量不确定的函数进行装饰


#参数用（*args, **kwargs）自动使用变参和命名参数


#函数对象有一个__name__属性，可以取到函数的名字。


def deco(func):
    def _deco(*args,**kwargs):
        print ("before %s called." % func.__name__)
        ret  = func(*args,**kwargs)
        print ("after %s called. result: %s" % (func.__name__,ret))
        return ret
    return _deco


@deco
def  myfunc(a,b):
    print ("myfunc(%s,%s)called." %(a,b))
    return a + b
@deco
def myfunc2(a,b,c):
    print ("myfunc2(%s,%s,%s)called." % (a,b,c))
    return a + b + c

myfunc(1,2)
myfunc2(1,2,3)
